Clock synchronized non-volatile memory device

ABSTRACT

A nonvolatile memory apparatus including a control circuit, plural terminals having clock, command and other terminals, data and command registers, and plural nonvolatile memory cells. The clock terminal receives a clock signal and the command terminal receives commands including read and program commands. The data register receives from and outputs data to outside. The control circuit reads operation steps from memory used to control the apparatus. The control circuit, responsive to the read command, controls reading data from the memory cells, storing read data to the data register, and outputting read data via the other terminal, not the command terminal, based on the clock signal. The control circuit, responsive to the program command, controls receiving data via the other terminal, not the command terminal, based on the clock signal, storing received data to the data register and writing received data to the memory cells.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of application Ser. No.12/434,794, filed May 4, 2009 now abandoned; which is a continuation ofapplication Ser. No. 11/892,041, filed Aug. 20, 2007, now U.S. Pat. No.7,542,339; which is a continuation of application Ser. No. 11/600,798,filed Nov. 17, 2006, now U.S. Pat. No. 7,327,604; which is acontinuation of application Ser. No. 11/088,945, filed Mar. 25, 2005,now U.S. Pat. No. 7,286,397; which is a continuation of application Ser.No. 10/810,631, filed Mar. 29, 2004, now U.S. Pat. No. 6,912,156; whichis a continuation of application Ser. No. 10/223,347, filed Aug. 20,2002, now U.S. Pat. No. 6,768,672; which is a continuation ofapplication Ser. No. 10/020,873, filed Dec. 19, 2001, now U.S. Pat. No.6,459,614; which is a continuation of application Ser. No. 09/817,021,filed Mar. 27, 2001, now U.S. Pat. No. 6,366,495; which is acontinuation of application Ser. No. 09/583,949, filed May 31, 2000, nowU.S. Pat. No. 6,256,230; which is a continuation of application Ser. No.09/287,187, filed Apr. 6, 1999, now U.S. Pat. No. 6,111,790; which is acontinuation of application Ser. No. 09/053,494, filed Apr. 2, 1998, nowU.S. Pat. No. 6,038,165; which is a continuation of application Ser. No.08/860,793, filed Jul. 9, 1997, now U.S. Pat. No. 5,889,698, thecontents of which are incorporated herein by reference.

TECHNICAL FIELD

The present invention relates to a technique which is especiallyeffective when applied to a multi-value data storing system in asemiconductor memory device and a nonvolatile semiconductor memorydevice, for example, to a technique which is effective when applied to anonvolatile memory device (hereinafter referred to as the ‘flashmemory”) for batch-erasing a plurality of memory data electrically.

BACKGROUND OF THE INVENTION

A flash memory uses nonvolatile memory elements each having a controlgate and a floating gate similar to FAMOSs, as its memory cells, andeach memory cell can be constructed of one transistor. In such a flashmemory, for a programming operation, the drain voltage of thenonvolatile memory element is set to about 5 V, as shown in FIG. 12, andthe word line connected to the control gate is set to about −10 V, sothat the charge on the floating gate is drawn therefrom by tunnelcurrent to set the threshold voltage to a low value (logic “0”).

For the erasing operation, as shown in FIG. 13, the P-type semiconductorregion pwell is set to about −5 V, and the word line is set to about 10V, so that tunnel current is caused to flow to inject negative chargesinto the floating gate, thereby to set the threshold value to a highstate (logic “1”). Thus, one memory cell is able to store the data ofone bit.

Incidentally, the concept of a so-called “multi-value” memory has beenproposed in which data of two or more bits are stored in one memory cellso as to increase the storage capacity. An invention relating to such amulti-value memory is disclosed in Japanese Patent Laid-Open No.121696/1984.

In a flash memory of the prior art, it is known that the variation ofthe threshold value is increased due to both a weak program (thedisturb) or the like caused by the programming, reading and erasingoperations of an adjacent bit and natural leakage (the retention), andconsequently, the half-value width (the width of the peak of thebell-shaped variation distribution at the position of a half peak value,as shown in FIG. 3) of the variation distribution of the threshold valuecorresponding to logic “0” and “1” increases with the lapse of time. Theinventors have found that, with the lower level of the power supplyvoltage of future LSIs, the threshold voltage of the memory cells mayexceed the marginal range for the read voltage by the broadening of thevariation distribution with time, thereby to cause a malfunction.

This problem is especially serious in a multi-value memory for storingone memory element with data of a plurality of bits by the differencebetween the threshold values, because this difference is small for theindividual data. In a flash memory, moreover, there is a technicalproblem for minimizing the processing time and the circuit scaleintrinsic to the multi-value memory, because of the erasing and programverifying operations intrinsic to the nonvolatile memory device.

SUMMARY OF THE INVENTION

An object of the present invention is to provide a multi-value typenonvolatile memory device which can realize programming, reading anderasing operations of high accuracy performed in a short time whileminimizing the increase in the circuit scale.

Another object of the present invention is to provide a method ofsharpening the shape of the variation distribution of the thresholdvalues, and accordingly, to a nonvolatile memory device capable ofstably operating at a low voltage.

Representatives features of the invention to be disclosed herein will bebriefly summarized in the following.

(1) At the data programming time, data of a plurality of bits aretransformed by a data transforming logic circuit into data (multi-valuedata) according to the combination of the bits, and the transformed dataare sequentially transferred to a latch circuit connected to the bitlines of a memory array. A program pulse is generated according to thedata latched in the latch circuit and is applied to a memory element ina selected state, so that it is brought into a state in which it has athreshold value corresponding to the multi-value data. In the datareading operation, the states of the memory elements are read out bychanging the read voltage to intermediate values of the individualthreshold values and are transferred to and latched in a register forstoring the multi-value data, so that the original data may be restoredby an inverse data transforming logic circuit on the basis of themulti-value data stored in the register.(2) After a weak erasing operation of the memory elements in the memoryarray has been executed, the memory element, which has a threshold valuelower than the read level of the word line and higher than the verifylevel, is detected, and the program is executed such that the thresholdvalue of the memory element may be lower than the verify voltage therebyto narrow the width of the variation distribution shape of the thresholdvoltage of the memory element which is programmed correspondingly to theindividual input data.

According to the aforementioned feature (1), the peripheral circuitscale of the memory array can be suppressed to a relatively small size.In the programming operation, the verify voltage value of the word lineis sequentially changed (as will be seen in (1) to (4) of FIG. 3) by apredetermined value in a direction away from the near side of theerasing word line voltage, so that the total number of the programpulses, i.e., the program time, can be made shorter than that of themulti-value flash memory system, in which the verify voltage is set atrandom, thereby to realize a programming operation performed in a shorttime.

According to the aforementioned feature (2), on the other hand, theshape of the variation distribution of the threshold voltage of thememory elements, which has been widened due to disturb or retentioninfluences, can be returned to a steep shape substantially identical tothat just after the end of the programming operation.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is an explanatory diagram showing one example of the operation oftransforming two-bits of data to be programmed in one memory cell andread therefrom into quaternary data of the level to be physicallyprogrammed in each memory cell and read therefrom in accordance with thepresent invention.

FIG. 2 is an explanatory diagram showing one example of the operation ofinversely transforming quaternary data transformed by a datatransforming logic circuit into the original two-bits of data.

FIG. 3 is an explanatory diagram showing the relations between thequaternary data and the threshold values of the memory cells.

FIG. 4 is a circuit diagram schematically showing one embodiment of amulti-value flash memory according to the present invention.

FIG. 5 is a flow chart showing a programming procedure of themulti-value memory of the embodiment.

FIG. 6 is a timing diagram showing the programming operation waveformsof the multi-value flash memory of the embodiment.

FIG. 7 is an explanatory diagram of the operation waveforms showing thedifference between the programming method of the multi-value flashmemory of the embodiment and another programming method.

FIG. 8 is a flow chart showing a reading procedure of the multi-valueflash memory of the embodiment.

FIG. 9 is a timing diagram showing the reading operation waveforms ofthe multi-value flash memory of the embodiment.

FIG. 10 is block diagram showing an example of the entire structure ofthe multi-value flash memory of the embodiment.

FIG. 11 is a block diagram showing an example of the system constructionof an embodiment in which a controller is given a function to transformtwo-bits data intrinsic to the multi-value memory and quaternary data.

FIG. 12 is a diagram showing the structure of a memory cell used in theflash memory of the embodiment and the voltage state at the programmingtime.

FIG. 13 is a diagram showing the voltage state at the erasing time ofthe memory cell used in the flash memory of the embodiment.

FIG. 14 is a diagram showing the voltage state at the reading time ofthe memory cell used in the flash memory of the embodiment.

FIG. 15 is a block diagram showing an internal power source generatorand a switching circuit for selecting and feeding the generated voltageto a word driver or the like.

FIG. 16 is a schematic circuit diagram showing an example of theconstruction of the word driver.

FIG. 17 is an explanatory diagram showing a method of an embodiment forrefreshing the multi-value flash memory.

FIG. 18 is a flow chart showing a refreshing procedure of themulti-value flash memory of the embodiment.

FIG. 19 is a timing diagram showing the operation waveforms at therefreshing time.

FIG. 20 is a schematic circuit diagram showing an example of theconstruction of a sense latch circuit of an embodiment.

FIG. 21 is a schematic circuit diagram showing the state at the datainversion starting time and the operation of the sense latch circuit.

FIG. 22 is a schematic circuit diagram showing the state at the datainversion ending time and the operation of the sense latch circuit.

FIG. 23 is a schematic circuit diagram showing the state at theverifying time and the operation of the sense latch circuit.

DESCRIPTION OF THE PREFERRED EMBODIMENT

With reference to the accompanying drawings, an embodiment of theinvention as applied to a flash memory will be described.

FIG. 1 shows a method of transforming data to be inputted from theoutside and stored, and multi-value data to be stored in memory cells,and FIG. 2 shows an inverse transforming method for restoring theoriginal data from the multi-value data.

FIG. 1 shows an example of the transformation method in which any of twobits, i.e., “00”, “01”, “10” and “11” is to be stored in one memorycell, although the invention is not especially limited thereto. Thereare four kinds of combinations of the first binary data “a” and thesecond binary data “b” in FIG. 1(1), and these individual combinationsare transformed into four kinds of quaternary data having 0, 1, 2 andthree “1” in the four bits, by executing three kinds of logic operations(aNANDb), (NOTb) and (aNORb), as shown in FIG. 1(2).

Here, if the memory elements whose number is equal to that of the numberof “Is” as a result of the aforementioned operation are subjected to aprogramming operation, i.e., the application of program pulses, theywill have four types of threshold values, as shown in FIG. 1(3),according to the number of programming operations, so that two-bits ofdata can be programmed in one memory cell. The states of the changes inthe threshold value distributions of the individual memory elements areshown in FIG. 3 when the data “00”, “01”, “10” and “11” are to be storedin the same number in a plurality of memory elements in the memoryarray.

FIG. 2 shows the data reading principle. By changing the read voltagesof word lines at three stages (intermediate values of the individualthreshold value distributions of FIG. 3), three kinds of data “c’, “d”and “f’ can be sequentially read out from one memory cell. Then, one (a)of the programmed two-bits data can be restored by executing a logicoperation (d*NAND f)NAND c* on the read-out data. Of the read-out data,moreover, the data d are identical, as they are, to the program data b.Incidentally, symbols d* and c* designate the inverted signals of thedata d and c.

FIG. 4 shows one specific example of the circuit construction for thetransformation of multi-value data and the inverse transformation, asshown in FIGS. 1 and 2.

At the data programming time, the data of 2n-bits bit length, fed fromthe outside to the multi-value flash memory, are serially stored througha switch SW1 in two binary data registers REG1 and REG2 having a datawidth of n-bits. At this time, the switch SW1 is changed by the outputof a flip-flop FF1 driven by a clock signal CLK1 fed from the outside,although the invention is not especially limited thereto, and a clocksignal CLK1′, produced in a frequency divider DVD by dividing the clocksignal CLK1 and having a frequency twice as large as the clock signalCLK1, is fed through a change-over circuit CHG. In synchronism with thisclock signal CLK1′, the binary registers REG1 and REG2 are shifted, sothat the input data are alternately latched bit by bit in the binarydata registers REG1 and REG2.

The data “a”, latched in the first binary register REG1, and the data“b”, latched in the second binary register REG2, are shifted insynchronism with the clock signal CLK2 which is fed from an internalclock generator 30 through the change-over circuit CHG, fed bit by bitto a data transforming logic circuit 11 for the operations of FIG. 1(2),and then sequentially transferred after a predetermined logic operationthrough a switch SW2 to a sense latch circuit 13 having an n-bits lengthand disposed on one side of a memory array 12, so that they areprogrammed in the memory cells of the memory array 12. These programmingoperations will be described later in more detail.

The aforementioned change-over circuit CHG is switched, by a controlsignal coming from a sequencer 18 for controlling the memory inside, tofeed the clock signal CLK1′ to the binary registers REG1 and REG2 at thedata input time and the clock signal CLK2 from the clock generator 30 tothe binary registers REG1 and REG2 at the time of data transfer with thesense latch 13.

The aforementioned data transforming logic circuit (the data programmingoperation circuit) 11 is constructed to include: a NAND gate G1 which isallowed to receive at the individual input terminal the data a and b inthe binary data registers REG1 and REG2 and to perform the operation(aNANDb) and a NOR gate which is also allowed to receive at the inputterminal the data a, b and to perform the operation (aNORb); and aninverter G3 which is allowed to receive at its input terminal the data bof the binary data register REG2 and to perform the operation (NOTb).The switch SW2 selects and feeds any of the output signals of thoselogic gates G1, G2 and G3 to the sense latch circuit 13.

At the data reading time, on the other hand, the read data “c”, havingappeared on a bit line in response to the setting of one word line inthe memory array 12 to the read voltage level, are amplified and latchedby the sense latch circuit 13 and are serially transferred through aswitch SW3 to the binary data register REG1 in synchronism with theinternal clock signal CLK2.

Next, the data “d”, read out to the sense latch circuit 13 by changingthe read voltage level, are serially transferred to the binary dataregister REG2 through the switch SW3. Moreover, the data “f”, read outto the sense latch circuit 13 by changing the read voltage level, areserially transferred to an inverse transforming logic circuit 14 throughthe switch SW3. At this time, the binary registers REG1 and REG2 areshifted in synchronism with the clock signal CLK2.

Here, the period of the clock signal CLK2 at the data reading time maybe shorter than that of the clock signal CLK2 at the data programmingtime. The clock signal CLK2 can be generated which has a perioddetermined by the clock generator 30 in accordance with the controlsignal from the sequencer 18. The change in the word line reading levelis also changed according to the control signal from the sequencer 18.

The inverse transforming logic circuit (the data reading operationcircuit) 14 is constructed to include: an inverter G11 for receiving thedata outputted from the binary data register REG2; a NAND gate G12 fordirectly receiving at its input terminals both the output of theinverter G11 and the data transferred from the sense latch circuit 13; adelay circuit DLY for delaying the data outputted from the binary dataregister REG1 and transmitting the delayed data at a predeterminedtiming; an inverter G13 for inverting the signal coming from the delaycircuit DLY; and a NAND gate G14 for receiving the output of theinverter G13 and the output of the NAND gate G12. The logic operations(d*NAND f)NAND c*, shown in FIG. 2, are executed for the read-out data cand d, latched in the binary data registers REG1 and REG2, and for theread-out data f, transferred directly from the sense latch circuit 13.These operation results are outputted through the switch SW1 to a datainput/output terminal I/O.

At the same time that the one-bit data are thus outputted, the binarydata register REG2 is shifted so that one bit of the data “d” (=b)latched are outputted. At this time, the shift operation of the binaryregisters REG1 and REG2 are synchronized with the clock signal CLK2.Next, the next bits of the data “c” and “d” are read out again from thebinary data registers REG and REG2, and the logic operations (d*NANDf)NAND c* are executed for the next one bit of the read-out data “f”which are directly transferred from the sense latch circuit 13. Byrepeating operations similar to the aforementioned ones, the data “a”and “b”, having been backward transformed and restored to the originaltwo bits, are outputted to the outside from the data input/outputterminal I/O.

Incidentally, the data “a”, inversely transformed by the inversetransforming logic circuit 14, do not necessarily need to be instantlyoutputted to the input/output terminal I/O, as described above.Alternatively, the data “a” inversely transformed may be first latchedin the binary data register REG1 and then outputted to the input/outputterminal I/O alternately with the data in the binary data register REG2after all bits have been inversely transformed. In this alternativecase, a one-bit latch circuit may desirably be provided in place of theaforementioned delay circuit DLY.

As a result, the data “c” in the binary register REG1 can be read outbit by bit and logically operated with the data “d” and “f”, and theresults can be simply programmed in the original bit positions in thebinary data register REG1. The shift operations of the binary registersREG1 and REG2, when the inversely transformed data are outputted to theoutside after they are once latched in the binary registers REG1 andREG2 can be synchronized with the clock signal CLK1 coming from theoutside.

The flash memory of this embodiment is equipped, although the inventionis not especially so limited, with: a command register 16 for latchingthe command fed by an external CPU or the like; a command decoder 17 fordecoding the command latched in the command register 16; and a sequencer18 for sequentially producing and outputting the control signals for theindividual circuits, such as the aforementioned switches SW2 and SW3, toexecute the processings corresponding to those commands on the basis ofthe decoded results of the command decoder 17. The flash memory thusconstructed decodes the commands, when fed, and executes thecorresponding processing automatically. The aforementioned sequencer 18is constructed to include a ROM (Read Only Memory) latching a series ofmicro instruction groups necessary for executing the commands (orinstructions), like the control unit of a CPU of the micro program type,so that the micro programs are started when the command decoder 17generates the leading address of the micro instruction groups, whichcorrespond to the commands, and feeds the address to the sequencer 18.

The detailed programming procedure will be described in the following inaccordance with the programming flow of FIG. 5.

First of all, prior to the programming, all the memory cells arebatch-erased. As a result, all the memory cells are caused to have thehighest threshold value (of about 5 V) and to be brought into the state(as shown in FIG. 3(1)) such that they store “11” as the program data.The batch erase operation is carried out, as shown in FIG. 13, byraising the voltage of the word line to apply a voltage of 10 V to thecontrol gate CG of the memory cell, a voltage of 0 V to the drainthrough the bit line and a voltage of −5 V to the substrate (thesemiconductor region p-well) thereby to inject electrons into a floatinggate FG. The batch erase process is executed by programming in thecommand register 16 the erase command coming from the external CPU toinstruct the erase operation.

Incidentally, in FIG. 13 (FIG. 12 and FIG. 14): reference symbol psubdesignates a p-type semiconductor substrate; pwell designates a p-typesemiconductor well region for the base of the memory cell; nisodesignates an n-type semiconductor isolation region for effecting theisolation from the substrate pseb at the data erasing time (at thenegative voltage applying time); n+ in the surface of the p-type wellregion pwell designates the source and drain regions of the memory cell;and p+ in the surface of the p-type well region pwell, n+ in the surfaceof the isolation region niso, and p+ in the surface of the substratepsub designate the contact regions for reducing the resistances of thecontacts with the electrodes for applying the potentials to theindividual semiconductor regions. In one p-type well region there isformed memory cells which are connected to word lines, say, one hundredand twenty eight word lines, although the invention is not especiallylimited thereto, so that all of the memory cells formed over one wellcan be batch-erased. Moreover, the memory cells can be erased in a unitof a word line by rendering the word line potential selected (10V)/unselected (0 V) for the memory cells over one p-type well region.

After the end of the batch erase operation, the flash memory is broughtinto the program mode by programming in the command register 16 of FIG.4 the program command coming from the external CPU. In this programmode, the program data are inputted at a predetermined timing. Then, theflash memory sends the program data to the binary data registers REG1and REG2, so that the program data are transferred in units of two bitsto the transforming logic circuit 11 and are transformed into quaternarydata (at Step S1). The transformations are carried out in the order ofaNANDb, NOTb (inversion of b) and aNORb. The transformed data (the firsttransformation is aNANDb) are transferred to the sense latch circuit 13(Step S2).

At the next Step S3, it is judged whether or not all the data in thebinary data registers REG1 and REG2 have been transferred. If thisjudgment is YES, a program pulse having a predetermined pulse width isapplied to the memory cell of the bit which corresponds to the value “1”of the X (row) address fed from the external CPU and the Y (column)address outputted from a built-in Y-address counter 33, as shown in FIG.10, (at Step S4), so that the programming is executed. The programmingis carried out, as shown in FIG. 12, by applying a voltage of −10 V tothe control gate CG through the word line, a voltage of 5 V from thesense circuit to the drain through the bit line, and a voltage of 0 V tothe substrate. Incidentally, at this time, a voltage Vcc (e.g., 3.3 V)is applied to the unselected word line. As a result, fluctuation of thethreshold value due to the disturb influence is suppressed. Next, theverify voltage (about 3.5 V for the first time) corresponding to theprogram level is fed to the word line, which is left in the selectedstate at the programming time, to read out the data in the memory cellto which the program pulse has been applied. The data “0” is read out asread-out data from the memory cell which has been sufficientlyprogrammed, whereas the data “1” is read out from the memory cell whichhas been insufficiently programmed. It is, therefore, judged accordingto the programmed data whether the program has been ended orinsufficient. Here, the data of the sense latch circuit 13, which havebeen programmed, are inverted to “0” (Step S6). Moreover, it is judgedwhether or not all the latch data of the sense latch circuit 13 take thevalue “0”. If all take “0”, the programming in this procedure is ended.If there is any insufficiently programmed memory cell having the latchdata “1”, the routine is returned from Step S7 to Step S4, so that theprogram pulse is applied again to the memory cell which isinsufficiently programmed to have the value “1”. By repeating Steps S4to S7, the program pulse is repeatedly applied so that the thresholdvalues of all the memory cells may become lower than the program verifyvoltage. As a result, the programmed memory cells have a threshold valueof about 3.2 V on an average.

When the programming of the desired data in all the memory cells isended by the aforementioned program verifying operation, all the data ofthe sense latch circuit 13 will take the value “0”, so that the routineadvances to Step S8, at which it is judged whether or not theprogramming operations for all the program levels have ended, that is,whether or not the data “10”, “01” and “00” have been programmed. If thejudgment is NO, the routine is returned to Step S1, at which quaternarydata based on the next operation result (NOTb) are programmed in thememory cells to change the verify voltage of the word line (2.5 V forthe second time). As a result of this verification, the programmedmemory cells have a threshold value of about 2.2 V on an average. Afterthis, the programming and verification (at a verify voltage of 1.5 V) ofthe third operation result are executed, so that the programmed memorycells have a threshold value of about 1.2 V on an average, thus endingthe programming.

FIG. 6 shows the waveforms of the control clock signal CLK2, the data tobe programmed in the sense latch circuit 13, and the potential of theselected word line in the aforementioned programming and programverifying operations. In the first programming, the first operationresult (aNANDb) is transferred to the sense latch circuit 13, and theselected memory cell having the latch value “1” is then programmed bythe program pulse. Next, a voltage of about 3.5 V, for example, is fedas the program verify voltage to the word line, and it is judged whetheror not the programmed data have the value “0”. When the threshold valueis higher than 3.5 V, the read-cut data have the value “1” and are foundto have been insufficiently programmed, so that the programmingoperations are repeated till the read-out data have the value “0”. Next,the second operation result (NOTb) is transferred to the sense latchcircuit 13, so that the programming operation of the desired memory cellis started by the program pulse. The program verify voltage is set toabout 2.5 V, and it is judged whether or not the programming isinsufficient. If the judgment is YES, the programming is executed again.Finally, the third program result (aNORb) is transferred to the senselatch circuit 13, and a procedure like the aforementioned one isexecuted. The program verify voltage in this case is about 1.5 V.

In the foregoing embodiment, as described above, the setting of the wordline voltage at the three program verify stages is so controlled thatthe voltage value is sequentially changed (3.5 V→2.5 V→1.5 V) away fromthe erase level from the starting point of the level (3.5 V) which hasbeen set at the closest value to the erase level (about 5 V). In theforegoing embodiment, moreover, even the memory cell of which the targetthreshold value is an intermediate or lowest value (2.2 V, 1.2 V) isprogrammed simultaneously with the programming of the memory cell whosetarget threshold value is the highest value (3.2 V), as shown in FIG.7(3). This is one of the features of the present invention. As a result,5 the increase in the programming time of the multi-value data can beminimized.

Specifically, in addition to the: aforementioned method, a conceivablemethod for setting the programming and program verifying word linevoltage is one in which the setting is changed so as to execute thefirst programming of memory cells, as the programming object, having anintermediate threshold voltage (2.2 V) out of the three kinds ofthreshold voltage, and the second programming of memory cells, as theprogramming object, having a voltage (3.2 V) higher than the voltage ofthe first programming or a voltage (1.2 V) lower than that. As shown inFIG. 7(A), alternatively, there can be conceived a method forbatch-programming the memory cells having an identical target thresholdvalue. According to these methods, however, it takes a long time forprogramming, and the time for the charge/discharge to change the wordline voltage is increased, so that the time for the program/verifybecomes longer than that of the present embodiment.

Next, the reading operation of the memory cells will be described withreference to FIGS. 8 and 9. The data reading operation is performed, asshown in FIG. 14, by raising the voltage of the word line to apply avoltage of the selected level, such as 3.7 V, 2.7 V or 1.7 V, to thecontrol gate CG of the memory cell or a voltage of 1.5 V to the drainthrough the bit line. The reading operation is executed by programmingthe command for ordering a reading operation in the command register 16.

When the reading operation is started, the read level is set at first tothe highest level of 3.7 V to energize the word line (at Step S11).Then, in the selected memory cell, data will appear on the bit line inaccordance with the word line reading voltage level, so that the dataare read out by amplifying the bit line level by the sense latch circuit13 (Step S12). Next, the subsequent steps are different depending uponwhether the reading is the first, second or third reading (Step S13).Specifically, when the reading is the first reading, the read data inthe sense latch circuit 13 are transferred to the binary data registerREG1 (Step S14).

When the transfer of all the read data in the sense latch circuit 13 hasended, the routine returns from Step S15 to Step S11, at which thesecond data reading operation is executed by setting the read level to2.7 V to transfer the read data to the binary data register REG2. At theend of the second data read and transfer, the third data readingoperation is performed by setting the read level to 1.7 V, and theroutine moves from Step S13 to Step S16, at which the read data aretransferred directly to the inverse transforming logic circuit 14.Moreover, the data, latched in the binary data registers REG1 and REG2,are individually transferred bit by bit to the inverse transforminglogic circuit 14, in which there is executed a logic operation fortransforming the quaternary data into two bit data (Step S17). Moreover,the foregoing procedure (Steps 16 to 18) is repeated to end the readingoperations till the transfer and transformation of all the data in thesense latch circuit 13 are ended. The data transformation is effected byexecuting the operation of FIG. 2.

FIG. 9 shows the timings of the control clock CLK2 in the readingoperation according to the aforementioned procedure, the data to betransferred from the sense latch circuit 13, and the read level of theword line. When the read command and the address are fed from theoutside, the reading operation is started to set the first read level(3.7 V) at first thereby to activate the word line, so that the datawill appear on the bit line. The data “c”, having appeared in responseto the first word line level 3.7 V, are read out by the sense latchcircuit 13 and are transferred to the first binary data register REG1having a data width equal to n bits, which represents the data length ofthe sense latch.

Next, the data “d”, produced by lowering the word line level by apredetermined value to the second read level 2.7 V, are transferred tothe second binary data register REG2. The data “f”, produced by loweringthe word line to the third read level 1.7 V, are transferred to theinverse transforming logic circuit 14 so that the aforementionedquaternary data “c”, “d” and “f’ are changed again to two-bit data andoutputted to the outside, such as to the CPU.

FIG. 10 shows the relation between an example of the entire constructionof the multi-value flash memory MDFM having on the common semiconductorchip the aforementioned data transforming/inverse-transforming circuit,and a controller CONT connected with the flash memory MDFM. Thiscontroller CONT may have only an address generating function and acommand generating function for the multi-value flash memory of thepresent embodiment, so that a general purpose microcomputer can be used.

In FIG. 10, the circuit components designated by the same referencesymbols of FIG. 4, have identical functions. Specifically, the symbolsREG1 and REG2 designate binary data registers for holding the programdata of two bits; the numeral 11 designates a data transforming logiccircuit for transforming the held two-bits data into quaternary data;the numeral 12 designates a memory array provided with nonvolatilememory elements having a floating gate, such as a FAMOS in a matrixform; the numeral 13 designates a sense latch circuit for latching theread data and the program data; the numeral 14 designates an inversetransforming logic circuit for transforming the quaternary data read outfrom the memory array into two-bits data; the numeral 16 designates acommand register for latching the command fed from the controller CONT;the numeral 17 designates a command decoder for decoding the commandcode held in the command register 16; and the numeral 18 designates asequencer for sequentially generating and outputting the control signalsfor the individual circuits in the memories to execute the processingscorresponding to the commands.

The multi-value flash memory of this embodiment is equipped with twomemory arrays, although the invention is not especially limited thereto,and individual sense latch circuits 13 are provided for the respectivememory arrays. These individual sense latch circuits 13 are constructedto simultaneously amplify and latch the data of the memory cells of oneline sharing the word line in the memory array, so that the read datalatched in two sense latch circuits 13 are selected by a commonY-decoder 15 and transferred bit by bit or in units of a byte to anoutput register 19. The read data latched in the output register 19 areoutputted to the external CPU or the like through a buffer circuit 22.The sense latch circuit 13 of the embodiment of FIG. 4 performs a shiftoperation during the data transfer and is required to have a functionsimilar to that of the shift register. However, the sense latch circuits13 can have no shift function by providing a construction, as in FIG.10, in which the data are selected by the Y-decoder 15 and in which thisY-decoder 15 shifts the selected bit in response to the clock signal.

The multi-value flash memory of this embodiment is constructed toinclude, in addition to the above specified individual circuits, an alldecision circuit 20 for deciding whether or not the data read out fromthe memory array 12 and fed to the sense latch 13 are all “0” or all“1”; a buffer circuit 21 for fetching external control signals, such asa reset signal RES, a chip select signal CE, a program control signalWE, an output control signal CE, a system clock SC and a command enablesignal CDE indicating whether the input is a command input or an addressinput, all signals being fed from the controller CONT; a buffer circuit22 for fetching an address signal and a command signal; an internalsignal generator 23 for generating a control signal for an internalcircuit on the basis of the external control signal; an address register24 for latching the address which has been held in the buffer circuit22; a data register 25 for latching the input data; X-address decoders26 a and 26 b for decoding the fetched address to generate a signal andfor selecting the word line in the memory array 12; a word driver 27; aninternal power source generator 28 for generating voltages required inthe chip, such as the substrate potential, the program voltage, the readvoltage and the verify voltage; a switching circuit 29 for selecting adesired voltage from these voltages in accordance with the operatingstate of the memory and feeding the selected voltage to the main decoder27 and the like; a clock generator 30 for generating the internal clocksignals (CLK2 and the like); a timer circuit 31 for counting the clockpulses to give times, such as a program pulse width; a status register32 for indicating the control state of the memory by the sequencer 16; aY-address counter 33 for updating the Y-address automatically; a falseaddress register 34 for latching the position (address) of a false bit;a redundancy comparator 35 for comparing the Y-address and the falseaddress; and a relieved address register 36 for storing a relievedaddress to switch the selected memory column when the address coincides.Moreover, the multi-flash memory of this embodiment is constructed tooutput a ready/busy signal R/B* for indicating whether or not the memorycan be accessed from the outside.

Moreover, the multi-value flash memory of this embodiment is given afunction (hereinafter referred to as the refresh function) to sharpenthe bell-shaped variation distributions of the threshold values when theshapes broaden and lower due to the disturb or the retention influences(see FIG. 3). This refresh function is activated when a command is fedfrom the outside as in the programming or erasing operation. If therefresh command is fetched by the command register 16, the sequencer 18of the micro program control type is started to effect the refreshingoperation. This refreshing operation will be described in detailhereinafter. The signal indicating the decision result of theaforementioned all decision circuit 20 is fed to the sequencer 18. Inthe refreshing mode, the all decision circuit 20 decides that the readdata are all “0”. When a signal indicating this decision result is fedto the sequencer 18, the sequencer 18 stops the refreshing operation. Atthe data erasing time, on the other hand, the sequencer 18 stops theerasing operation if the aforementioned all decision circuit 20 decidesthat the read data are all “1”.

In this embodiment, moreover, there is adopted a predecode system inwhich the X-address decoder decodes the address signal at the two stagesby means of the predecoder 26 a and the main decoder 26 b. The desiredword line is selected, for example, by decoding the more significantthree bits of the X-address at first using the predecoder 26 a and bycontrolling the word driver 27 with the predecode signal. By adoptingsuch a predecode system, the unit decoders constituting the main decoder26 b can be arranged in a high integration state according to the wordline pitch of the memory array thereby to reduce the chip size.

Incidentally, the multi-value flash memory of the aforementionedembodiment is equipped on the common silicon substrate, as shown inFIGS. 4 and 10, with the function circuits 11 and 14 for transformingtwo-bits data into quaternary data and vice versa. However, a dedicatedcontroller unit having those functions can be separately provided. Inthis modification, the flash memory chip need not be provided with thefunctions intrinsic to the multi-value, so that its chip area does notincrease. Another advantage is that a plurality of flash memories MDFMcan be connected to a single controller unit CONT and controlled by abus BUS, as shown in FIG. 11. This controller unit is constructed tohave an address generating function and a command generating function inaddition to the aforementioned data transforming/inverse-transformingfunctions.

FIG. 15 shows the internal power source generator 28 for generating theword line voltage and a substrate potential Vsub and the switchingcircuit 29 for selectively feeding them to the word driver 27 and thelike, and FIG. 15 shows an example of the construction of the worddriver 27. The internal power source generator 28 generates thenecessary word line voltages in response to the internal control signalswhich are generated from the sequencer 18 in correspondence to thevarious operation modes. The construction of the internal power sourcegenerator 28 for generating voltages including the word line voltage andthe construction of the switching circuit (the word line voltageswitching circuit) 29 for receiving the generated voltages are similarto those of the prior art, except that the kinds of the voltage valuesof the word line are increased for the multi-value operation.

Specifically, there are four kinds of word line voltages necessary forthe binary flash memory of the prior art: the read voltage (2.7 V, 0 V);the program voltage (−10 V, 0 V); the program verify voltage (1.5 V);the erase voltage (+10 V, 0 V) and the erase verify voltage (4.3 V, 0V). On the contrary, the word line voltages necessary for themulti-value flash memory of the present embodiment are: the read voltage(3.7 V, 2.7 V, 1.7 V, 0 V); the program voltage (−10 V, 0 V); theprogram verify voltage (3.5 V, 2.5 V, 1.5 V); the erase and erase verifyvoltages (10 V, 4.3 V, V); and the refresh voltage (−10 V, 10 V, 3.7 V,3.5 V, 2.7 V, 2.5 V, 1.7 V, 1.5 V, 0 V).

The aforementioned switching circuit 29 receives the internal controlsignals, which are generated by the sequencer 18 and correspond to thevarious operation modes, and feeds the voltages, generated by theaforementioned internal power source generator 28, to the powerterminals P1 and P2 of the word driver 27 which is constructed as shownin FIG. 16.

The word driver WDRV of FIG. 16 is a driver used when the word linepredecoding method is adopted. Eight voltage selectors VOLS1 to VOLSBhave their inputs connected in common to the output node N1 of a logicselector LOGS1, and eight voltage selectors VOLS9 to VOLS16 have theirinputs connected in common to the output node N2 of a logic selectorLOGS2, so that the individual voltage selectors may be selected bypredecode signals Xp1 and Xp1* to Xp8 and Xp8*. Signals XM and XNtogether with the predecode signals Xp1 and Xp1* to Xp8 and Xp8* are fedfrom an address decoder XDCR (26 b). At this time, the voltage selectorsVOLS1 to VOLS16 have to select and feed the same voltage to the wordline as that which is unselected by the other logic selector, unless theoperation is selected by the predecode signal even if either logicselector LOGS1 or LOGS2 corresponding to the voltage selectors outputsthe select signal of the select level.

For these operations, separating MOSFETs Q56 and Q57 are switched by thepredecode signal. In order that a voltage in the unselected state may beoutputted to the word line when the separating MOSFETs Q56 and Q57 arecut off, there are further provided a pull-up MOSFET Q58 and a pull-downMOSFET Q59 which can be switched complementarily with the separatingMOSFETs Q56 and Q57 to feed a predetermined voltage to each input of theoutput circuit INV2.

In FIG. 16, the aforementioned signal XM is deemed to be a three-bitsignal for indicating which word lines out of the eight word line groupseach including eight word lines is to be selected. The predecode signalsXp1 and Xp1* to Xp8 and Xp8* are deemed to be complementary signals forindicating which word line contained in each word line group is to beselected. According to the present embodiment, the high level of theselect signal SEL is the select level, and the high and low levels ofeach of the predecode signals Xp1 and Xp1* to Xp8 and Xp8* are theselect level.

The voltage to be fed to the terminal P1 of the aforementioned worddriver WDRV is a voltage Vpp to be used for the erasing, programming,verifying and reading operations, such as 5 V, 4.3 V, 3.7 V, 3.5 V, 2.7V, 2.5 V, 1.7 V, 1.5 V or 0 V. The voltage to be fed to the terminal P2is either a voltage Vee to be used for the programming and refreshingoperations, such as −10 V or a voltage Vss as the ground potential orthe reference potential of the circuit, such as 0 V.

Each of the aforementioned logic selectors LOGS1 and LOGS2 isconstructed to include: an inverter INV1 for inverting the signal of theX-decoder-XDCR; a transfer gate TG1 for transmitting or blocking theoutput of the inverter INV1; and a transfer gate TG2 for transferring orblocking the signal of the X-decoder XDCR.

The aforementioned voltage selectors VOLSI to VOLS16 are made to haveidentical constructions, each of which is made, as represented by thevoltage selector VOLS1, of: an N-channel type pull-up MOSFET Q58connected between a terminal P3 and the gate of a MOSFET Q52 andswitched by the predecode signal Xp1*; and a P-channel type pull-upMOSFET Q59 connected between a terminal P4 and the gate of a MOSFET Q53and switched by the predecode signal Xp1. The voltage selector VOLSIswitches the separating MOSFET Q56 by using the predecode signal Xp1 andthe other separating MOSFET Q57 by using the predecode signal Xp1*. Theaforementioned terminals P3 and P4 are fed with the voltage Vcc or Vss.

Next, the operations of the word driver WDRV of FIG. 16 will bedescribed. Table 1 shows the voltages at the terminals and the word linevoltages in the individual operation modes. The description of themanner in which to set the program mode, the erase mode and the readmode will be omitted.

TABLE 1 P4 P1 P3 P2 WORD SELECTED UNSELECTED XM Xp DE

LINE ERASE ∘ L H L Vcc Vpp Vcc Vss Vpp ∘ H H Vss ∘ L/H L Vss PROGRAM ∘ LH H Vss Vcc Vss Vcc Vcc ∘ H H Vcc ∘ L/H L Vcc READ ∘ L H L Vcc Vcc VccVss Vcc ∘ H H Vss ∘ L/H L Vss

When the erase mode is specified by the command, the switching circuit29 feeds the voltage Vpp to the terminal P1, the voltage Vss to theterminal P2, and the voltage Vcc to the terminals P3 and P4, and thecontrol signal DE is set to the low level.

On the other hand, all the bits of the signal XM are set to the lowlevel, so that any of word lines W1 to W8 can be selected. As a result,when the select signal SEL at the select level (the high level) is fed,the node N1 is set to the low level through the inverter INV1 and thetransfer gate TG1 so that this low level is fed to the inputs of theindividual voltage selectors VOLS1 to VOLS8. When the memory cell to beerased is coupled to the word line W1, only the signals Xp1 and Xp1* ofthe predecode signals Xp1I and Xp1* to Xp8 and Xp8* are set to the highlevel and the low level, respectively.

Therefore, the separating MOSFETs Q56 and Q57 of only the voltageselector VOLS1 are turned on, so that the signal at the node N1 isfetched by the voltage selector VOLS1. At this time, both the pull-upMOSFET Q58 and the pull-down MOSFET Q59 of the voltage selector VOLS1are cut off.

As a result, the signal of the node N1 is fed to the MOSFETs Q52 and Q53of the voltage selector VOLS1. Then, the MOSFET Q52 of the outputcircuit INV2 is turned on, and hence the word line W1 begins to becharged by the voltage Vpp at the terminal P1. At this time, the lowlevel to be fed to the gate of the other MOSFET Q53 is raised to a lowlevel higher than the initial voltage Vss by the action of the MOSFETQ57, so that the MOSFET Q53 is not completely cut off. However, when theconductance of a feedback MOSFET Q55 is increased with the rise of thelevel of the word line W1, the voltage of the gate of the MOSFET Q53 isforced to the voltage Vss, and it is completely cut off.

In the erase mode, therefore, the word line W1, to which is coupled theselected memory cell, is charged to the level Vpp.

While the select signal SEL is at the high level, as described above,the predecode signals Xp1 and Xp1* are set to the low level and the highlevel, respectively, if the memory cell Q1 of the word line W1 is notselected for the erasure. As a result, both separating MOSFETs Q56 andQ57 of the voltage selector VOLS1 are turned off to fetch no signal fromthe node N1. At this time, both pull-up MOSFET Q58 and pull-down MOSFETQ59 of the voltage selector VOLS1 are turned on.

As a result, the gates of the MOSFETs Q52 and Q53 of the voltageselector VOLS1 are fed with the voltage Vcc from the terminals P3 and P4through the MOSFETs Q58 and Q59. As a result, the MOSFET Q53 of theoutput circuit INV2 is turned on, so that the word line W1 begins to bedischarged to the voltage Vss through the terminal P2. At this time, thehigh level fed to the gate of the other MOSFET Q52 is lower than thevoltage Vcc by the threshold voltage of the MOSFET Q58, so that theMOSFET Q52 is not completely cut off. As the level of the word line W1is lowered by the ON MOSFET Q53, the conductance of the feedback MOSFETQ54 is increased, and the gate of the MOSFET Q52 is forced to thevoltage Vpp, so that it is completely cut off. In the erase mode,therefore, the unselected word line W1 is discharged to the voltage Vss.

The operation of the word driver WDRV when the program mode or the readmode is specified, will not be described in detail because it is similarto the operation of the aforementioned program mode. However, the wordlines are so driven by the voltages applied to the terminals P1 and P2from the switching circuit 29 that the voltages, as shown in FIGS. 13and 14, may be applied to the selected memory cells.

Next, the refreshing operation, which is a second feature of themulti-value flash memory of the present invention will be described withreference to FIG. 17. For the multi-value flash memory which is firstprogrammed with the data, the bell-shaped variation distributions of thethreshold values are completely separated, as shown in FIG. 17(1).However, the threshold value variations are increased as shown in FIG.17(2), as the subsequent programming, reading and standby stateoperations are repeatedly executed.

This is caused by the so-called disturb influence, in which when amemory cell adjacent to a certain memory cell is programmed, this memorycell is also weakly programmed, and by the retention, influence, whichis caused by the natural leakage at the standby time. This phenomenonmay occur even in an ordinary flash memory for storing only one bit, butmay cause a malfunction in the multi-value flash memory in which theintervals between the individual threshold values are narrow, as in theforegoing embodiment.

In the present embodiment, therefore, there is executed a refreshingoperation for sharpening the peaks (see FIG. 3) of the variationdistributions of the threshold values when the peaks are broadened andlowered.

Next, the procedure of the refreshing operations will be described.

FIG. 18 is a flow chart showing the procedure of the refreshingoperation. When the refresh command is inputted from the external CPU orthe like, the sequencer 18 is started to begin the refreshing operationaccording to the flow chart of FIG. 18. When the refreshing operation isstarted, a weak erase pulse is applied at first from the word line toall the memory cells which are connected to the selected word line (StepS21). As a result of this application of the weak erase pulse, thethreshold values of all the memory cells are slightly shifted to thehigher side, as shown in FIG. 17(3). This shift is about 0.2 V, althoughthe invention is not especially limited thereto. Here, the term, weakerase pulse, refers to a sufficiently short pulse that the memory cellthreshold value at “10”, for example, may not exceed, if added, just thehigher read level 3.7 V. The pulse width is experimentally determinedaccording to the amount to be shifted.

At the second stage, the word line voltage is set to the read level (3.7V) corresponding to the stored data “10” (Step S22) thereby to effectthe reading operation. As a result, data are read out according to thethreshold values of the individual memory cells (Step S23) and areamplified and latched by the sense latch circuit 13. At this time, thedata of the sense latch corresponding to the memory cell having a higherthreshold value than the word line voltage is set to “1”, and the dataof the sense latch corresponding to the memory cell having a lowerthreshold value than the word line voltage is set to “0”. Next, the dataof the sense latch are inverted (Step S24). This data inversion can beeasily carried out (as will be described hereinafter) by the sense latchcircuit having the construction shown in FIG. 20.

Next, the word line is set to a lower verify voltage (3.5 V at first)which is lower than the aforementioned read level (Step S22) so that thejudgment of the threshold value is executed (Step S25). As a result, thedata of the sense latch corresponding to the memory cell (designated byletter A in FIG. 17(4)) having a lower threshold value than the verifyvoltage are switched from “C” to “1”. On the contrary, the data of thesense latch corresponding to the memory cell (designated by letter B inFIG. 17(4)) having a higher threshold value than the verify voltage areleft at “1”. These data are judged to be targets to be re-programmed inthe present embodiment. This specifies the memory cells which haveexcessively approached the read level (3.7 V) when the threshold valueis shifted to the higher side by the weak erasure at Step S21.Incidentally, the data of the sense latch, which corresponds to thememory cell (designated by letter C in FIG. 17(4)) corresponding to thestored data “11” having the highest threshold value, are left at “0” setby the aforementioned inverting operation. Such an operation can beautomatically executed by a sense latch circuit which has theconstruction shown in FIG. 20 (as will be described hereinafter).

Therefore, the memory cell (designated by letter B in FIG. 17(4)) havingthe data “1” of the sense latch is re-programmed by setting the programvoltage (Step S27). After this, the verification is executed by settingthe verify voltage corresponding to the program level (Step S28, S29).When the threshold value becomes lower than the verify voltage, thelatch data change from “1” to “0”. The programming and verifyingoperations are repeated to end the refresh procedure of the memory cellhaving the data “10”, till all the latch data change to “0”. As aresult, the variation distribution (the half-value width) of thethreshold value of the memory cell of the data “10” becomes low, asindicated in FIG. 17(5). From that point on, similar refreshingoperations are executed, too, for the memory cells for storing the data“01” and “00” (Step S31). In order to make the width of the distributionshape of the threshold value, the operations of Steps 21 to 31 arerepeated to complete the refresh operation (Step S32) when apredetermined number of operations are ended.

Table 2 shows the changes in the latched data of the sense latch circuitwhich occur sequentially when the memory cells having the thresholdvalues indicated by letters A, B and C of FIG. 17(4), are read out, whenthe refreshing is executed according to the procedure described above.

TABLE 2 READ INVERSION VERIFY END CELL A 0 1 0 0 CELL B 0 1 1 0 CELL C 10 0 0

FIG. 19 is a diagram showing the timings at which the refreshingoperations are executed. As described above, the causes of enlarging thevariations of the threshold values of the memory cells are the disturbinfluence due to the execution of the weak programming, erasing andreading operations of a memory cell adjacent to a memory cell if thismemory cell is programmed or read, and the retention influence due tothe natural leakage.

The timings at which the refreshing operations against the fluctuationof the threshold values due to the disturb influence are executed are asfollows.

(1) The refreshing operations are executed when the flash memory is in astandby state (/RES is at the high level) and after a predeterminednumber of programming/erasing and reading operations are completed.

(2) The refreshing operations are executed immediately after the resetsignal (/RES) is activated at the resetting time.

(3) The refreshing operations are executed immediately after the resetstate is caused by setting the /RES to the low level from the standbystate.

(4) The /RES is set to the low level immediately before the power supplyis turned ‘off, so that the refresh is executed by sensing the offcondition.

(5) The refresh is executed after the power supply is turned on to setthe /RES to the high level.

As counter-measures for the reduction of the threshold values due to theretention influence, on the other hand, it is conceivable to execute therefresh operation at predetermined periodic intervals in the course ofthe dummy cycle or in the standby state when the power supply is turnedon. All of these refresh timings may be executed, but any one or onlysome of them also may be executed.

Incidentally, the refreshing operations described above should not belimited to the multi-value flash memory. As it is considered that thepower supply voltage of the flash memory will change to a lower voltage,however, an increase in the variation of the threshold value cannot beignored even in an ordinary flash memory, so that the refreshingoperation is an effective function as a counter-measure against thelower power supply voltage of the flash memory.

FIG. 20 shows an example of the construction of the memory array 12 andthe sense latch circuit 13. The memory array 12 is an AND type, in whicha plurality of memory cells MC (e.g., one hundred and twenty eight forone hundred and twenty eight batch-erasable word lines) are connected inseries between a common drain line DL, provided in parallel with the bitlines BL arranged perpendicularly to the word lines and adapted tooutput the read signal of the selected memory cell, and a common sourceline SL. The common drain line DL can be connected to the correspondingbit line BL through the switch MOSFET Q1, and the common source line SLcan be connected to the grounding point through the switch MOSFET Q2.The gate control signals for those switch MOSFETs Q1 and Q2 aregenerated on the basis of the X-address signal and the read/writecontrol signal. The switch MOSFETs Q1 and Q2 are turned on to dischargethe bit lines through the ON memory cells by setting the gate controlsignals to a potential such as Vcc (3.3 V) at the data reading time(including the verifying time). At the data programming time, on theother hand, the gate control signal for the switch MOSFET Q1 is set to apotential such as 7 V and turned on because the program voltage (5 V) ofthe bit lines is transmitted to the drains of the memory cells. At thistime, the switch MOSFET Q2 on the common source line SL side is turnedoff.

The sense latch circuit 13 is constructed of a CMOS differential typesense amplifier SA disposed for each memory column for amplifying thepotential difference between the bit lines of the right and left memoryarrays. Prior to the reading operation, the bit line of the selectedside (on the lefthand side) memory array is precharged to a potentialsuch as 1 V by a precharge MOS (SW21), and the bit line on the oppositeside memory array is precharged to a potential such as 0.5 V by aprecharge MOS (SW22).

When the word line WL is set to the read level in this precharge state,the bit line retains 1.0 V if the selected memory cell has a highthreshold value. However, if the selected memory cell has a lowthreshold value, an electric current flows to draw the charge en the bitline, so that the bit line takes a potential of C.2 V. The potentialdifference between this potential of 1.0 V or 0.2 V and the potential of0.5 V of the bit line on the opposite side is detected and amplified bythe sense amplifier SA, so that the read data are latched in the senseamplifier SA.

In the foregoing embodiment, as described before, the sense latch (thesense amplifier) corresponding to the bit line connected to the memorycell to be programmed is set to “1”, the program pulse (−10 V) isapplied to the word line, and then the word line is set to the verifyvoltage (about 3.5 V for the first time) corresponding to the programlevel thereby reading the memory cell to which the program pulse isapplied. Moreover, the read data “1” are read out from theinsufficiently programmed memory cell to the bit line, and a program endor weak program is judged from the data read out, so that the data ofthe sense latch (the sense amplifier) whose bits are programmed areinverted to “O”. In other words, the data “1” are left in the senselatch (the sense amplifier) corresponding to the insufficientlyprogrammed memory cell, so that the program pulse may be applied againto the insufficiently programmed memory cell corresponding to the bit of“1”.

In the refreshing operations, too, the data read out to the sense latchare inverted, and the verification is executed to apply the programpulse to the memory cell corresponding to the bit of “1”.

The sense latch circuit of FIG. 20 is devised to have a inversioncontrol circuit 30 which is interposed between the sense amplifier andthe memory array and composed of four switches SW11, SW12, SW13 andSW14, so as to easily facilitate the inversion of the latch data of thesense amplifier corresponding to the memory cell, which has beenprogrammed at the aforementioned programming time, and the narrowing ofthe memory cell to which the program pulse is to be applied.

Here will be described the operation of this sense latch circuit.Incidentally, the switches SW21 and SW22 disposed on the individual bitlines BL are switches for precharging the bit lines and are constructedof MOSFETs, similar to the aforementioned switches SW11 to SW14.

At the data reading time, the switch SW13 is turned off at first. Withthe bit line BL and the sense amplifier SA disconnected from each other,as shown in FIG. 20, the switches SW21 and SW22 are then turned on tocharge the bit line BL on the selected side to a precharge level of 1.0V.

At this time, the bit line on the unselected side is charged to thelevel of 0.5 V. Moreover, the sense amplifier SA turns on the switchSW14 to reset it and feed it a potential of 0.5 V. At this time,moreover, the switch MOSFETs Q1 and Q2 are turned en by impressing thevoltage Vcc to their gates.

Then, any word line WL in the memory array is set to the select level of3.7 V. Then, the memory cells (e.g., the cell A and B of FIG. 17) havinga lower threshold value than the word line select level are turned on,so that the bit line BL connected to them is discharged to the level of0.2 V by the electric current flowing to the common source line SLthrough the ON memory cells. On the other hand, the memory cell (e.g.,the cell C of FIG. 17) having a higher threshold value than the wordline select level is turned off, so that the bit line BL connected to itis held at the precharge level of 1.0 V.

Next, the switch SW14 is turned off to release the sense amplifier SAfrom the reset state and to activate it, and the switch SW13 on the bitline BL is turned on to connect the bit line BL to the sense amplifierSA. The power source voltage Vcc is fed to the P-MOS side of the senseamplifier SA, and the ground potential (O V) is fed to the N-MOS side.Then, the sense amplifier SA amplifies the potential difference betweenthe bit lines BL and BL* sufficiently, and the switch SW13 on the bitline BL is turned off. As a result, the sense amplifier SA comes intothe state that it amplifies the, level difference between the bit lineson the select and unselect sides and holds the data.

When the latch data of the sense amplifier SA are to be inverted, theswitch SW13 is turned off. With the bit line BL and the sense amplifierSA disconnected from each other, as shown in FIG. 21, the switches SW21and SW22 are turned onto precharge the bit lines BL on the select andunselect sides to the level of Vcc-Vtn (e.g., 3.3 V−0.6 V=2.7 V). Afterthis, the switches SW21 and SW22 are turned of f, and the switch SW11 isturned on. In accordance with the data latched in the sense amplifierSA, the switch SW12 is then turned on if the data are “is”, so that thebit line BL is discharged to the bit line inverting level (O V). If thedata latched in the sense amplifier SA are “Os”, on the other hand, theswitch SW12 is turned off, so that the bit line BL retains the levelVcc. In short, the inverse level of the latched data of the senseamplifier SA appears in the corresponding bit line BL.

Here, the switch SW14 is first turned on to reset the sense amplifierSA. After this, the switch SW14 is turned off, and the switch SW13 tothe bit line BL is turned on to connect the bit line BL to the senseamplifier SA. In the meantime, the supply voltages on the P-MOS side andthe N-MOS side of the sense amplifier SA are set to 0.5 V. Then, thesupply voltage Vcc is fed to the P-MOS side of the sense amplifier SAwhereas the ground potential (0 V) is fed to the N-MOS side, and theswitch SW13 on the bit line BL is turned off. As a result, the senseamplifier SA takes the state that it latches the data corresponding tothe level of the bit line in the aforementioned data latching state, asshown in FIG. 22.

In other words, the sense amplifiers corresponding to the cells A and Bof FIG. 17 latch the high level “1”, and the sense amplifiercorresponding to the cell C latches the low level “O”. These operationsare similar to the so-called “program verifying” operation. Hence, thebit line precharge has to be executed only for the portion in which thesense latch is “H”. By turning on the switch SW11 to set the bit lineprecharge voltage (1) to 1 V, therefore, only bit lines BLO and BL1 takethe value of 1 V (the bit line BL2 is reset in advance to 0 V).

Next, the switches SW21 and SW22 are turned on while the switch SW13 onthe bit line BL is left off, to charge the select side bit line BL tothe precharge level of 1.0 V and the unselected-side bit line to thelevel of 0.5 V. After this, a verify voltage such as 3.5 V slightlylower than the preceding read level (3.7 V) is applied to the selectedword line. Then, the memory cell (e.g., the cell A of FIG. 17) having alower threshold value than the word line selection level is turned on,so that the bit line BL connected thereto is discharged to the levelsuch as 0.2 V.

On the other hand, the memory cell (e.g., the cell B of FIG. 17) havinga higher threshold value than the word line selection level is turnedoff, so that the bit line BL connected thereto retains the prechargelevel of 1 V. At this time, moreover, since the bit line, which isconnected to the memory cell (e.g., the cell C of FIG. 17) correspondingthe data “11” having the highest threshold value, intrinsically retainsthe low level, i.e., “O”, it takes the low level even if it is off whenthe word line is set to the select level (FIG. 23).

As a result, after the sense latch is reset in this state, the switchSW13 on the bit line BL is turned on. Then, the sense amplifiercorresponding to the bit line, which is connected to the memory cell(e.g., the cell C of FIG. 17) corresponding to the data “11”, and thesense amplifier corresponding to the bit line, which is connected to thememory cell (e.g., the cell A of FIG. 17) having a lower threshold valvethan the word line select level, retain the low level “0”, whereas thesense amplifier corresponding to the bit line, which is connected to thememory cell (e.g., the cell B of FIG. 17) having a higher thresholdvalue than the word line select level, retains the high level “1”. Inthe present embodiment, this data retained by the sense amplifier areused to make a shift to the programming operation to apply the programpulse (−10 V) to the selected word line, thereby lowering the thresholdvalue of the memory cell corresponding to the retained data “1” of thesense amplifier.

After the application of the program pulse, the reading operation isexecuted by setting the word line again to the selection level. Then,the bit line of the memory cell having a lower threshold value than theword line verify level is changed to the low level, i.e., “0”, and thebit line connected to the insufficiently programmed memory cell retainsthe high level “1”. By latching this state by the sense amplifier toexecute the programming operation again, only the threshold value of thememory cell, in which the latched data of the sense latch corresponds to“1”, is lowered to sharpen the threshold value distribution shape. Thedata latched by the sense amplifier A are fed to the aforementioned alldecision circuit 20 through both so-called column switch turned on/offby the output signal of the Y-deooder 15 and the common I/O line, and itis judged whether or not they are all “0”. If they are all “0”, therefresh for the memory cells of the data “10” are ended, and the refreshfor the memory cells of the data “01” and “00” is executed.

Incidentally, the re-programming operation of the insufficientlyprogrammed memory cell in the aforementioned program mode is identicalto the aforementioned one effected by the sense latch circuit 13 at therefreshing time.

In the foregoing embodiment, as has been described hereinbefore, at thedata programming time, data of a plurality of bits are transformed by adata transforming logic circuit into data (multi-value data) accordingto the combination of the bits, and the transformed data aresequentially transferred to a latch circuit connected to the bit linesof a memory array. A program pulse is generated according to the datalatched in the latch circuit and is applied to a memory element in aselected state, so that a threshold value is made to correspond to themulti-value data. In the data reading operation, the states of thememory elements are read out by changing the read voltage tointermediate values of the individual threshold values and aretransferred to and latched in a register for storing the multi-valuedata, so that the original data may be restored by a data inversetransforming logic circuit on the basis of the multi-value data storedin the register. As a result, the following effects can be achieved. Theperipheral circuit scale of the memory array can be suppressed to arelatively small size. In the programming operation, the verify voltagevalue of the word line is sequentially changed by a predetermined valuein a direction away from the near side of the erasing word line voltageso that the total number of the program pulses, i.e., the program timeperiod can be reduced compared to the multi-value flash memory system,in which the verify voltage is set at random, thereby to realize aprogramming operation performed in a short time.

Moreover, after a weak erasing operation of the memory elements in thememory array is executed, the memory element, which has a thresholdvalue lower than the read level of the word line and higher than theverify level, is detected, and the program is executed so that thethreshold value of the memory element may be lower than the verifyvoltage, thereby narrowing the width of the variation distribution shapeof the threshold voltage of the memory element which is programmedaccording to the individual input data. As a result, the followingeffect can be achieved. The variation distribution shape of thethreshold voltage of the memory elements, which has been widened due tothe disturb or the retention influences, can be returned to the steepshape substantially identical to that just after the end of theprogramming operation.

Although our invention has been specifically described in connectionwith its embodiments, it should not be limited to the embodimentsspecifically described but can naturally be modified in various mannerswithout departing from the gist thereof. In the foregoing embodiments,for example, the quaternary data are stored by setting the thresholdvalue of one memory cell at four stages, but these threshold values canbe set to three stages or five or more stages.

In the embodiments, on the other hand, the inversion of the read data atthe refreshing time and the narrowing of the memory cells, in which theread data are to be programmed, can be effected by using only the senselatch circuit. Despite this construction, however, there may be provideda register for latching the read data and a logic circuit for narrowingthe memory cell to be programmed, by performing a logic operation, e.g.,by inverting the content of the register.

In the embodiments, moreover, the three kinds of operations, as shown inFIG. 1(2), are executed as a transformation of the two-bits data intothe quaternary data and vice versa. However, the logic operation shouldnot be limited to those of FIG. 1 but may be any logic operation as longas data having different numbers of bits of “1” can be resultantlyobtained. Furthermore, the operation for data inverse transformationshould not be limited to those of FIG. 2 but may be any operation aslong as the original two-bits data can be restored, and the number ofoperations should not be limited to one but may be two or more.

The programming method for each memory cell should not be limited tothat of the embodiment in which the threshold value is lowered by theprogram pulse after it has been first raised for the erasure, but may bethe one in which the threshold value is raised by the program pulse. Inthe embodiment, moreover, the threshold value is changed by programmingthe memory cell corresponding to the sense latch latching the data “1”.However, the threshold value may be changed by programming the memorycell which corresponds to the sense latch latching the data “0”.

The description thus far made is directed mainly to a batch-erase typeflash memory to which our invention is applied and which is the field ofapplication of its background. However, the present invention should notbe limited thereto but can be applied generally to a nonvolatile memorydevice having FAMOSs as its memory elements and further widely to asemiconductor memory device which is equipped with memory cells having aplurality of threshold values.

According to the present invention, as has been described hereinbefore,it is possible to realize a multi-value type nonvolatile memory devicewhich can carry out programming, reading and erasing operations of highaccuracy which are performed in a short time period while minimizing theincrease in the circuit scale, and a nonvolatile memory device capableof sharpening the shape of the variation distribution of the thresholdvalues of memory elements while stably operating at a low voltage.

What is claimed is:
 1. A nonvolatile memory apparatus, comprising: anonvolatile memory array; a plurality of terminals including a commandterminal, a clock terminal and another terminal; a control circuit; anda logic circuit in electrical communication with the control circuit andsaid other terminal, wherein said command terminal is capable ofreceiving commands which include a read command and a write command,wherein said clock terminal is capable of receiving a clock signal,wherein said nonvolatile memory array includes a plurality of word lineseach of which coupled to a plurality of nonvolatile memory cells,wherein in an operation in response to said read command received fromsaid command terminal, said control circuit controls to selecting atleast one word line, to supplying a read voltage to said at least oneword line, to reading data from ones of said nonvolatile memory cellscoupled to said at least one word line, and to outputting data from thelogic circuit via said other terminal except said command terminal inresponse to said clock signal, wherein in an operation in response tosaid write command received from said command terminal, said controlcircuit controls to receiving data at the logic circuit via said otherterminal except said command terminal in response to said clock signal,to selecting at least one word line, to supplying a program voltage tosaid at least one word line for writing data to at least one nonvolatilememory cell coupled to said at least one word line, to supplying averify voltage to said at least one word line for checking whether saidat least one nonvolatile memory cell is completed writing data or not,and to repeating supplying said program voltage and supplying saidverify voltage to said at least one word line until said at least onenonvolatile memory cell is completed writing data, wherein each of saidnonvolatile memory cells has a threshold voltage within an arbitrary oneof a plurality of threshold voltage ranges, wherein said plurality ofthreshold voltage ranges comprise a threshold voltage range indicatingan erase state and a threshold voltage range indicating a program state,wherein said control circuit controls moving said threshold voltages ofones of said nonvolatile memory cells coupled to said at least one wordline to within said threshold voltage range indicating said erase statein said operation in response to said erase command, and wherein saidcontrol circuit controls moving said threshold voltage of saidnonvolatile memory cell coupled to said at least one word line to withinsaid threshold voltage range indicating said program state and stayingsaid threshold voltages of remaining memory cells of ones of saidnonvolatile memory cells coupled to said at least one word line withinsaid threshold voltage range indicating said erase state, in saidoperation in response to said program command.
 2. A nonvolatile memoryapparatus according to claim 1, wherein said commands further include anerase command, and wherein in an operation in response to said erasecommand received from said command terminal, said control circuitcontrols to selecting at least one word line, and to supplying an erasevoltage to said at least one word line for erasing data into ones ofsaid nonvolatile memory cells coupled to said at least one word line. 3.A nonvolatile memory apparatus comprising: a nonvolatile memory array; aplurality of terminals including a command terminal, a clock terminaland another terminal; a control circuit; and a logic circuit inelectrical communication with said control circuit and said otherterminal, wherein said command terminal is capable of receiving commandswhich include a read command and a write command, wherein said clockterminal is capable of receiving a clock signal, wherein saidnonvolatile memory array includes a plurality of word lines each ofwhich coupled to a plurality of nonvolatile memory cells, wherein in anoperation in response to said read command received from said commandterminal, said control circuit controls to selecting at least one wordline, to supplying a read voltage to said at least one word line, toreading data from ones of said nonvolatile memory cells coupled to saidat least one word line, and to outputting data from the logic circuitvia said other terminal except said command terminal in response to saidclock signal, wherein in an operation in response to said write commandreceived from said command terminal, said control circuit controls toreceiving data at the logic circuit via said other terminal except saidcommand terminal in response to said clock signal, to selecting at leastone word line, to supplying a program voltage to said at least one wordline for writing data to at least a nonvolatile memory cell coupled tosaid at least one word line, to supplying a verify voltage to said atleast one word line for checking whether said at least one nonvolatilememory cell is completed writing data or not, and to repeating supplyingsaid program voltage and supplying said verify voltage to said at leastone word line until said at least one nonvolatile memory cell iscompleted writing data, wherein said commands further include an erasecommand, wherein in an operation in response to said erase commandreceived from said command terminal, said control circuit controls toselecting at least one word line, and to supplying an erase voltage tosaid at least one word line for erasing data into ones of saidnonvolatile memory cells coupled to said at least one word line, whereineach of said nonvolatile memory cells has a threshold voltage within anarbitrary one of a plurality of threshold voltage ranges, wherein saidplurality of threshold voltage ranges comprise a threshold voltage rangeindicating an erase state and a threshold voltage range indicating aprogram state, wherein said control circuit comprises a circuit, whereinin said operation in response to said read command, said circuit sensesa status of data according to a threshold voltage of said at least onenonvolatile memory cell coupled to said at least one word line which iswithin said threshold voltage range indicating said erase state or saidthreshold voltage range indicating said program state, wherein saidcontrol circuit controls moving said threshold voltages of ones of saidnonvolatile memory cells coupled to said at least one word line towithin said threshold voltage range indicating said erase state in saidoperation in response to said erase command, and wherein said controlcircuit controls moving said threshold voltage of said at least onenonvolatile memory cell to within said threshold voltage rangeindicating said program state and staying said threshold voltages ofremaining memory cells of ones of said nonvolatile memory cells coupledto said at least one word line within said threshold voltage rangeindicating said erase state, in said operation in response to saidprogram command.
 4. A nonvolatile memory apparatus according to claim 3,wherein said other terminal is a data terminal, wherein said dataterminal is capable of receiving data in said operation of said programcommand, and wherein said data terminal is capable of outputting data insaid operation of said read command.
 5. A nonvolatile memory apparatuscomprising: a control circuit; a first terminal; a second terminal; athird terminal; a logic circuit in electrical communication with saidcontrol circuit and the second terminal, and a nonvolatile memory arrayincluding a plurality of word lines and a plurality of nonvolatilememory cells, wherein said first terminal is capable of receiving aclock signal, wherein said second terminal is capable of receiving datain response to said clock signal and supplying data in response to saidclock signal, wherein said third terminal is capable of receivinginformation for specifying an arbitrary one of operations which includean erase operation, a read operation and a program operation, whereinwhen receiving information for specifying said erase operation via saidthird terminal, said control circuit controls to selecting at least oneword line, and to supplying an erase voltage to said at least one wordline for erasing data into ones of said nonvolatile memory cells coupledto said at least one word line, wherein when receiving information forspecifying said read operation via said third terminal, said controlcircuit controls to selecting at least one word line, to supplying aread voltage to said at least one word line, to reading data from onesof said nonvolatile memory cells coupled to said at least one word line,and to outputting data from the logic circuit via said second terminalexcept said third terminal, wherein when receiving information forspecifying said program operation via said third terminal, said controlcircuit controls to receiving data at the logic circuit via said secondterminal except said third terminal, to selecting at least one wordline, to supplying a program voltage to said at least one word line forwriting data to at least one nonvolatile memory cell coupled to said atleast one word line, to supplying a verify voltage to said at least oneword line for checking whether said at least one nonvolatile memory cellcoupled to said at least one word line is completed writing data or not,and to repeating supplying said program voltage an supplying said verifyvoltage to said at least one word line until said at least onenonvolatile memory cell is completed writing data, wherein each of saidnonvolatile memory cells has a threshold voltage within an arbitrary oneof a plurality of threshold voltage ranges, wherein said plurality ofthreshold voltage ranges comprise a threshold voltage range indicatingan erase state and a threshold voltage range indicating a program state,and wherein said control circuit controls moving said threshold voltagesof ones of said nonvolatile memory cells coupled to said at least oneword line to within said threshold voltage range indicating said erasestate in said operation in response to said erase command, and whereinsaid control circuit controls moving said threshold voltage of said atleast one nonvolatile memory cell coupled to said at least one word lineto within said threshold voltage range indicating said program state andstaying said threshold voltages of remaining memory cells of ones ofsaid nonvolatile memory cells coupled to said at least one word linewithin said threshold voltage range indicating said erase state, in saidoperation in response to said program command.
 6. A nonvolatile memoryapparatus comprising: a control circuit; a first terminal; a secondterminal; a third terminal; a logic circuit in electrical communicationwith said control circuit and said second terminal; and a nonvolatilememory array including a plurality of word lines and a plurality ofnonvolatile memory cells, wherein said first terminal is capable ofreceiving a clock signal, wherein said second terminal is capable ofreceiving data in response to said clock signal and supplying data inresponse to said clock signal, wherein said third terminal is capable ofreceiving information for specifying an arbitrary one of operationswhich include an erase operation, a read operation and a programoperation, wherein when receiving information for specifying said eraseoperation via said third terminal, said control circuit controls toselecting at least one word line, and to supplying an erase voltage tosaid at least one word line for erasing data into ones of saidnonvolatile memory cells coupled to said one word line, wherein whenreceiving information for specifying said read operation via said thirdterminal, said control circuit controls to selecting at least one wordline, to supplying a read voltage to said at least one word line, toreading data from ones of said nonvolatile memory cells coupled to saidat least one word line, and to outputting data from the logic circuitvia said second terminal except said third terminal, wherein whenreceiving information for specifying said program operation via saidthird terminal, said control circuit controls to receiving data at thelogic circuit via said second terminal except said third terminal, toselecting at least one word line, to supplying a program voltage to saidat least one word line for writing data to at least one nonvolatilememory cell coupled to said at least one word line, to supplying averify voltage to said at least one word line for checking whether saidat least one nonvolatile memory cell coupled to said at least one wordline is completed writing data or not, and to repeating supplying saidprogram voltage and supplying said verify voltage to said at least oneword line until said at least one nonvolatile memory cell is completedwriting data, wherein each of said nonvolatile memory cells has athreshold voltage within an arbitrary one of a plurality of thresholdvoltage ranges, wherein said plurality of threshold voltage rangescomprise a threshold voltage range indicating an erase state and athreshold voltage range indicating a program state, wherein said controlcircuit comprises a circuit, wherein when receiving information forspecifying said read operation, said circuit senses status of dataaccording to a threshold voltage of said at least one nonvolatile memorycell coupled to said at least one word line which is within saidthreshold voltage range indicating said erase state or said thresholdvoltage range indicating said program state, wherein said controlcircuit controls moving said threshold voltages of ones of saidnonvolatile memory cells coupled to said at least one word line towithin said threshold voltage range indicating said erase state in saidoperation in response to said erase command, and wherein said controlcircuit controls moving said threshold voltage of said at least onenonvolatile memory cell to within said threshold voltage rangeindicating said program state and staying said threshold voltages ofremaining memory cells of ones of said nonvolatile memory cells coupledto said one word line within said threshold voltage range indicatingsaid erase state, in said operation in response to said program command.7. A nonvolatile memory apparatus comprising: a control circuit; a clockterminal; a command terminal; a data terminal; a logic circuit inelectrical communication with said control circuit and said dataterminal; and a nonvolatile memory array including a plurality ofnonvolatile memory cells and a plurality of word lines, each of which iscoupled to corresponding ones of said nonvolatile memory cells, whereinsaid clock terminal receives a clock signal, wherein said data terminalreceives data for transferring to the logic circuit in response to saidclock signal and outputs data from the logic circuit in response to saidclock signal, wherein said command terminal receives commands whichinclude a read command and a program command, wherein in an operation inresponse to said read command received from said command terminal, saidcontrol circuit controls to selecting at least one word line, tosupplying a read voltage to said at least one word line, to reading datafrom ones of said nonvolatile memory cells coupled to said at least oneword line, and to outputting data from the logic circuit via said dataterminal except said command terminal, wherein in an operation inresponse to said program command received from said command terminal,said control circuit controls to receiving data at the logic circuit viasaid data terminal except said command terminal, to selecting at leastone word line, to supplying a program voltage to said at least one wordline for writing data to at least one nonvolatile memory cell coupled tosaid at least one word line, to supplying a verify voltage to said atleast one word line for checking whether said at least one nonvolatilememory cell is completed writing data or not, and to repeating supplyingsaid program voltage and supplying said verify voltage to said at leastone word line until said at least one nonvolatile memory cell iscompleted writing data, wherein each of said nonvolatile memory cellshas a threshold voltage within an arbitrary one of a plurality ofthreshold voltage ranges, wherein said plurality of threshold voltageranges comprise a threshold voltage range indicating an erase state anda threshold voltage range indicating a program state, wherein saidcontrol circuit controls moving said threshold voltages of ones of saidnonvolatile memory cells coupled to said at least one word line towithin said threshold voltage range indicating said erase state in saidoperation in response to said erase command, and wherein said controlcircuit controls moving said threshold voltage of said at least onenonvolatile memory cell coupled to said at least one word line to withinsaid threshold voltage range indicating said program state and stayingsaid threshold voltages of remaining memory cells of ones of saidnonvolatile memory cells coupled to said at least one word line withinsaid threshold voltage range indicating said erase state, in saidoperation in response to said program command.
 8. A nonvolatile memoryapparatus according to claim 7, wherein said commands further comprises:an erase command, and wherein in an operation in response to said erasecommand received from said command terminal, said control circuitcontrols to selecting at least one word line, and to supplying an erasevoltage to said at least one word line for erasing data stored in onesof said nonvolatile memory cells coupled to said at least one word line.